<template>
	<view class="content">
		<u-toast ref="uToast"></u-toast>
		<view class="header">
			<image src="/static/img/veizuLogo.jpg"></image>
		</view>
		<view class="title">
			<text>微著巡音</text>
			<uni-badge :offset="[-8, -20]" text="R" absolute="rightTop" type="primary" />
		</view>
		<view class="list">
			<view class="list-call">
				<image class="img" src="/static/img/userIcon.png"></image>
				<input class="sl-input" v-model.trim="userName" type="text" maxlength="14" placeholder="用户名" />
			</view>
			<view class="list-call">
				<image class="img" src="/static/img/passwordIcon.png"></image>
				<input class="sl-input" v-model="password" type="text" maxlength="20" placeholder="登录密码"
					:password="!showPassword" />
				<image class="img" :src="showPassword?'/static/img/showpassIcon.png':'/static/img/hidepassIcon.png'"
					@click="display"></image>
			</view>
			<view class="list-call">
				<image class="img" src="/static/img/verifyIcon.png"></image>
				<input class="sl-input" v-model="verifyPassword" type="text" maxlength="20" placeholder="确认密码"
					:password="!showPassword" />
			</view>
		</view>
		<view class="agreenment">
			<navigator url="login" open-type="redirect">使用已有账户登录</navigator>
		</view>
		<view class="button-login" hover-class="button-hover" @click="regist">
			<text>注册</text>
		</view>
	</view>
</template>

<script>
	export default {
		data() {
			return {
				userName: '',
				password: '',
				verifyPassword: '',
				showPassword: false,
				second: 0
			};
		},
		methods: {
			display() {
				this.showPassword = !this.showPassword
			},
			regist() {
				if (!this.userName) {
					this.$utils.showToast(this, '请输入用户名！', 'warning');
					return;
				}
				if (this.userName !== '') {
					var ruler = /^[A-Za-z0-9]+$/;
					if (!ruler.test(this.userName)) {
						this.$utils.showToast(this, '用户名由字母和数字组成！', 'warning');
						return;
					}
				}
				if (this.userName.length < 4) {
					this.$utils.showToast(this, '用户名最少4位！', 'warning');
					return;
				}
				if (!this.password) {
					this.$utils.showToast(this, '请输入密码！', 'warning');
					return;
				}
				if (this.password.length < 6) {
					this.$utils.showToast(this, '密码最少6位！', 'warning');
					return;
				}
				if (this.password != this.verifyPassword) {
					this.$utils.showToast(this, '两次密码不一致！', 'warning');
					return;
				}
				let userAddDto = new Object();
				userAddDto.userName = this.userName;
				userAddDto.password = this.password;
				uni.showLoading({
					title: "注册中...",
					mask: true,
				});
				uni.request({
					url: getApp().globalData.serverAddress + this.$uri.Uri_Regist,
					data: JSON.stringify(userAddDto),
					dataType: "json",
					method: "POST",
					success: (res) => {
						if (res.statusCode !== 200) {
							this.$utils.showToast(this, '服务器错误,请联系技术支持人员!', 'error');
							return
						}
						if (res.data.code == 0) {
							this.$utils.showToast(this, '注册成功！', 'success', 2, '/pages/auth/login');
						} else {
							this.$utils.showToast(this, res.data.msg, 'error');
						}
					},
					fail: (res) => {
						this.$utils.showToast(this, "注册失败", 'error');
					},
					complete() {
						uni.hideLoading();
					}
				})
			}
		}
	}
</script>

<style scoped lang="scss">
	.title {
		width: 100%;
		font-family: "楷体";
		font-weight: bold;
		font-size: 50rpx;
		color: #2979ff;
		display: flex;
		justify-content: center;
		align-items: center;
		margin: 40rpx 0rpx;
	}

	.content {
		display: flex;
		flex-direction: column;
		justify-content: center;
	}

	.header {
		width: 161rpx;
		height: 161rpx;
		background: rgba(63, 205, 235, 1);
		box-shadow: 0rpx 12rpx 13rpx 0rpx rgba(63, 205, 235, 0.47);
		border-radius: 50%;
		margin-top: 30%;
		margin-left: auto;
		margin-right: auto;
	}

	.header image {
		width: 161rpx;
		height: 161rpx;
		border-radius: 50%;
	}

	.list {
		display: flex;
		flex-direction: column;
		padding-left: 70rpx;
		padding-right: 70rpx;
	}

	.list-call {
		display: flex;
		flex-direction: row;
		justify-content: space-between;
		align-items: center;
		height: 100rpx;
		color: #333333;
		border-bottom: 0.5px solid #e2e2e2;
	}

	.list-call .img {
		width: 40rpx;
		height: 40rpx;
	}

	.list-call .sl-input {
		flex: 1;
		text-align: left;
		font-size: 32rpx;
		margin-left: 16rpx;
	}

	.yzm {
		color: #FF7D13;
		font-size: 24rpx;
		line-height: 64rpx;
		padding-left: 10rpx;
		padding-right: 10rpx;
		width: auto;
		height: 64rpx;
		border: 1rpx solid #FFA800;
		border-radius: 50rpx;
	}

	.yzms {
		color: #999999 !important;
		border: 1rpx solid #999999;
	}

	.button-login {
		color: #FFFFFF;
		font-size: 34rpx;
		width: 550rpx;
		height: 100rpx;
		line-height: 100rpx;
		background: linear-gradient(-90deg, rgba(63, 205, 235, 1), rgba(188, 226, 158, 1));
		box-shadow: 0rpx 0rpx 13rpx 0rpx rgba(164, 217, 228, 0.2);
		border-radius: 50rpx;
		text-align: center;
		margin-left: auto;
		margin-right: auto;
		margin-top: 80rpx;
	}

	.button-hover {
		background: linear-gradient(-90deg, rgba(63, 205, 235, 0.8), rgba(188, 226, 158, 0.8));
	}


	.agreenment {
		display: flex;
		flex-direction: row;
		justify-content: center;
		align-items: center;
		font-size: 30rpx;
		margin-top: 20rpx;
		color: #FFA800;
		text-align: center;
		height: 40rpx;
		line-height: 40rpx;
	}

	.agreenment text {
		font-size: 24rpx;
		margin-left: 15rpx;
		margin-right: 15rpx;
	}
</style>